iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
自我挑戰組

基礎前端+後端網站分享之留言板製作系列 第 21

第二十一天--新增留言 與成果

  • 分享至 

  • xImage
  •  

今天來撰寫新增留言。

我們要新增資料庫,用來放留言,一樣到xampp的mysql中控制,新增資料表,命名為messageboard,如圖所示
https://ithelp.ithome.com.tw/upload/images/20230925/20158466lvZeneQEfw.jpg
除了每個名稱、型態和長度/值外,特別提下,第一個id後面的A_I那邊要打勾。
A_I英文全名為AUTO_INCREMENT,中文為自動遞增,id留言的代碼,自動遞增能讓我們有效區別並節省撰寫出新的程式碼。
剩下的name是留言者名稱,comment是留言。

Home.php程式碼

<!DOCTYPE html>
<html lang="en">
<?php
include("../php/datatable.php");
?>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-wEmeIV1mKuiNpC+IOBjI7aAzPcEZeedi5yW5f2yOq55WWLwNGmvvx4Um1vskeMj0" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-p34f1UUtsS3wqzfto5wAAmdvj+osOnFyQFpp4Ua3gs/ZVWx6oOypYoCJhGGScy+8" crossorigin="anonymous"></script>
    <title>留言板</title>
</head>


<body>....

body後面的我就省略,和昨天一樣。


create_comment.php程式碼

<?php

include("datatable.php");
$name = $_POST["user_name"];
$comment = $_POST['comment'];
$statement = createComment($name, $comment);
header('Location:/30days/message_board/screen/Home.php');

createComment是從datatable.php來的。

datatable.php程式碼

function createComment($name, $comment)
{
    $db = dbConnect();
    $statement = $db->prepare("INSERT INTO messageboard(name,comment) VALUES(?,?)");
    $statement->execute([$name, $comment]);
    return $statement;
}
  • VALUES(?,?)
    這裡第一個?放入的是$name,也是$_POST["user_name"];
    這裡第二個?放入的是$comment,也是$_POST['comment'];

  • prepare用意補充
    prepare是用來防止其他人攻擊你的資料庫,也就是叫做SQL注入攻擊(SQL injection)
    透過預先轉換參數來防範此種攻擊,未來某天或許能講講SQL注入攻擊(SQL injection)。


新增留言成果展示:

Yes

提醒下,新增留言的結果要到messageboard資料表上看我們明後天才會做出呈現留言的畫面和後端


上一篇
第二十天--留言板畫面
下一篇
第二十二天--呈現留言 與成果
系列文
基礎前端+後端網站分享之留言板製作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言